#define _CRT_SECURE_NO_WARNINGS 1

#include <iostream>
#include <string>

using namespace std;

//void showlist()
//{
//	cout << endl;
//}
//
//template<class T, class ...Args>
//void showlist(const T& val, Args... args)
//{
//	cout << __FUNCTION__ << "(" << sizeof...(args) << ")";
//	//cout << val << endl;
//	showlist(args...);
//}

//int main()
//{
//	showlist(1);
//	showlist('A');
//	showlist(1,2.2,string("abcd"));
//
//	return 0;
//}

template<class T>
int PrintArgs(const T& t)
{
	cout << t << " ";

	return 0;
}

template<class ...Args>
void showlist(Args... args)
{
	//int arr[] = { (PrintArgs(args),0)... };
	
	int arr[] = { PrintArgs(args)... };
	cout << endl;
}

int main()
{
	showlist(1, 2.2, string("abcd"));

	return 0;
}